1. Field of Invention
The invention relates to a system and method for controlling the phase of a stepper motor. More specifically, the invention relates to a host-based stepper motor phase controller.
2. Description of Prior Art
Many open-loop stepper motor carrier systems suffer from velocity overshoot with a long settling time and steady state ripple effect as seen in FIG. 1. To generate the plot in FIG. 1 the motor carrier system was instrumented using a linear encoder strip and matching encoder to measure carrier position. The position versus time data was differentiated to get carrier velocity versus time.
The region from approximately 2.7 seconds to 2.9 seconds 110 graphically displays the velocity overshoot. The carrier accelerates from a base velocity to its target velocity, 15 inches/second in FIG. 1. The carrier, however, does not stop accelerating at this target velocity but overshoots it 120. During the settling time 130, the carrier velocity oscillation decays to zero.
Optimally, the velocity of the carrier would be constant at the target velocity. Practically, however, systems exhibit a steady state ripple about the target velocity as exhibited in region 140. The ripple effect is an inherent characteristic of the system. A variety of solutions exist for reducing the extent of this ripple by mechanically softening the system. This softening is accomplished by softening the belt to carrier interface, softening the belt to motor pulley interface, softening the idler pulley to belt interface or other appropriate mechanical softening option, or combination of such mechanical softening options.
Overshoot is a very serious problem in an open-loop carrier system. A limited measure of overshoot reduction results from the mechanical softening that reduces steady state ripple; however, additional overshoot reduction is beneficial.
For instance, in an inkjet printer using an open-loop carrier system to move print heads that fire ink drops onto print media (such as the Lexmark 3200 inkjet printer), the velocity must remain virtually constant to ensure accurate dot placement while printing. In such a use, accelerating the carrier and achieving a steady state velocity quickly in order to begin placing dots is a significant issue. Overshoot problems in this context create vertical banding, a compression and decompression of dots at a frequency visible to the human eye. FIG. 2 displays a typical oscillatory velocity versus time graph while FIG. 3 presents the same data platted as velocity versus position on the paper. Since dots are fired assuming a constant velocity, attempts to print equally space lines with oscillating velocity results in vertical banding as illustrated in FIG. 4. FIG. 4 graphs line placement versus paper position using the oscillatory velocity displayed in FIGS. 2 and 3. The same vertical banding shown in this group of lines also appears in other print jobs such as pictures and images.
Current open-loop stepper control systems generally take two approaches to overshoot reduction in addition to mechanical softening. The first approach involves the inclusion of additional circuitry on the printer to reduce overshoot. For example, one such system utilizes a circuit to reduce transient overshoot during start up of a stepper motor. This controller supplies a number of pulses in rapid succession to the motor drive circuits. This generates a negative torque in the stepper motor preventing overshoot. A disadvantage of this approach is the requirement that additional circuitry be included with the motor. As a consequence, updating an existing motor requires the installation of additional hardware.
Another general approach to overshoot reduction is the optimization of the ramp tables that control the acceleration and deceleration of the carrier. This approach does not suffer from the additional hardware requirement since modifications to an existing motor controller need only require the update of ramp table data that could be accomplished via a remote download. The problem with ramp table optimization is that a table optimized to reduce overshoot while the carrier is travelling in one direction does not necessarily optimize the table to reduce overshoot while the carrier is travelling in the other direction.
Current controller systems that reduce overshoot have a variety of disadvantages. First, many current systems require additional circuitry on the system itself. Further, attempts to reduce overshoot by optimizing acceleration and deceleration ramp tables leads to inconsistent carrier behavior when travelling in different directions.